package com.lili.collection.core.domain;

import com.lili.collection.core.enums.DataFormat;
import com.lili.collection.core.enums.FieldType;
import com.lili.collection.core.enums.TargetStoreType;
import com.lili.collection.core.handler.ICallBackHandler;
import com.lili.collection.core.handler.IDataHandler;
import lombok.Data;

import java.util.Map;
import java.util.Set;

/**
 *描述: 采集公共配置
 *@date: 2023/9/26  10:05
 *@author: lili
 */
@Data
public class CollectCommonConfig {

    /**
     * 偏移字段
     */
    private String offsetColumn;

    /**
     * 初始化偏移值
     */
    private String initialOffset;

    /**
     * 自增模式
     */
    private boolean isIncrementalMode = false;

    /**
     * 全量模式
     */
    private boolean fullMode = false;

    /**
     * 数据格式
     */
    private DataFormat dataFormat;

    /**
     * 映射别名配置
     */
    private Map<String,String> aliasMap;

    /**
     * 必填项字段
     */
    private Set<String> requiredFieldsSet;

    /**
     * 取数据的根路径
     */
    private String basePath;

    /**
     * 响应数据类型
     */
    private FieldType respDataType;

    /**
     * 响应选择的子集数据类型
     */
    private FieldType respDataSubtype;

    /**
     * 目标数据源类型
     */
    private TargetStoreType storeType;

    /**
     * 发送数据中间处理器
     */
    private IDataHandler dataHandler;

    /**
     * 发送成功回调处理器
     */
    private ICallBackHandler callBackHandler;

    /**
     * 通知配置
     */
    private NoticeConfig noticeConfig;

    /**
     * 主键key集合（可使用联合主键）
     */
    private Set<String> primaryKeySet;
}